// -------------------------------------------------------------------------
//    @FileName			:    {Filename}
//    @Author           :    GaoYi
//    @Date             :    2017-09-27
//    @Module           :   {Filename}
//
// -------------------------------------------------------------------------

#pragma once

#include <stdint.h>
#include "NFIMsgHead.h"

class NFIPacketParse
{
public:
	virtual int DeCode(const char* strData, const uint32_t unLen, char*& outData, uint32_t& outLen, uint32_t &nMsgId) = 0;
	virtual int EnCode(const int unMsgID, const char* strData, const uint32_t unDataLen, std::string& strOutData) = 0;
	virtual int GetMsgHeadLength() = 0;
public:
	static NFIPacketParse* CreatePacketParse();
private:
	static NFIPacketParse* m_pStaticPacketParse;
};
